package cn.marinda.resturants.service;

import cn.marinda.resturants.entity.Staff;
import cn.marinda.resturants.global.Pages;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/** 员工服务层
 *
 * @date 2021/12/2
 * @author Marinda
 * @version 1.0
 *
 */
public interface StaffService extends IService<Staff> {

    /** 返回所有员工
     *
     * @return 员工列表
     */
    List<Staff> queryList();

    /** 查询一个员工数据
     *
     * @param uid
     * @return
     */
    Staff selectByUid(String uid);


    /** 添加一个员工
     *
     * @param staff 新员工
     * @return 结果
     */
    boolean addStaff(Staff staff);


    /** 分页查询
     *
     * @param staffPage 分页
     * @return 分页数据
     */
    IPage<Staff> selectStaffPage(Pages<Staff> staffPage);

    /** 删除一个员工
     *
     * @param uid uid
     * @return 结果
     */
    boolean deleteStaff(String uid);

    /** 修改一个员工
     *
     * @param staff 员工
     * @return 结果
     */
    boolean updateStaff(Staff staff);

    /** 模糊查询一批名称的
     *
     * @param likeName 模糊名称
     * @return 列表
     */

    List<Staff> selectNameLike(String likeName);

    /** 员工加入日期区间列表
     *
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 列表
     */
    List<Staff> selectJoinDateInterval(String startDate,String endDate);

    /** 根据性别区间拿到员工 列表
     *
     * @param sex 性别
     * @return 员工列表
     */
    List<Staff> selectSexInterval(char sex);

    /** 员工部门列表
     *
     * @param department 部门列表
     * @return 员工列表
     */
    List<Staff> selectDepartment(String department);

    /** 查询手机号指定的员工
     *
     * @param phone 手机号
     * @return 员工
     */
    Staff selectPhone(long phone);

    /** 查询邮箱指定返回的员工
     *
     * @param email 邮箱
     * @return 员工
     */
    Staff selectEmail(String email);

    /** 查询员工工资号
     *
     * @param uid 员工id
     * @return 员工工资号
     */
    String selectSalaryUid(String uid);

}
